// 定义商品属性相关的接口类型 用于约束请求参数和响应结果
export interface ResponseData {
  code: number;
  message: string;
  ok: boolean;
}

// 分类ts的类型
export interface CategoryObj {
  id: string | number; // 分类id
  name: string; // 分类名称
  category1Id?: number; // 一级分类id
  category2Id?: number; // 二级分类id
  category3Id?: number; // 三级分类id
}

// 分类API接口返回的数据类型
export interface CategoryResponseData extends ResponseData {
  data: CategoryObj[]; // 分类列表
}

// 属性值类型
export interface AttrValue {
  id?: number; // 属性值id
  attrId?: number; // 属性id
  valueName: string; // 属性值名称
  flag?: boolean; // 是否为编辑状态
}

// 存储属性值的数组类型
export type AttrValueArr = AttrValue[];

// 属性对象
export interface Attr {
  id?: number; // 属性id
  attrName: string; // 属性名称
  categoryId?: number | string; // 分类id
  categoryLevel: number; // 分类级别
  attrValueList: AttrValueArr; // 属性值列表
}

//  属性对象数组的类型
export type AttrList = Attr[];

// 属性列表响应的数据类型
export interface AttrResponseData extends ResponseData {
  data: AttrList; // 属性列表
}
